rsync只同步指定目录的方法(已测) |
您所在的位置:网站首页 › rsync include-from › rsync只同步指定目录的方法(已测) |
rsync同步指定目录 rsync使用–include参数与–exclude参数来实现同步指定目录,并且–exclude目录放在后面。 例如: linux上文件目录 复制代码 代码如下: ls /usr/local/apache/htdocs/site aa bb cc dd ee .. zz只想同步aa,bb,ee这三个目录,其他的不同步。 实现代码: 复制代码 代码如下: /usr/local/rsync/bin/rsync -azv --include "aa/" --include "bb/" --include "ee" --exclude "/*" --progress rsync://127.0.0.1/site /work/backup/htdocs_bak/site说明: –include “aa/” –include “bb/” –include “ee” 包含了你要同步的目录 –exclude包含了不同步的目录所有用“/*”指定。 –exclude “/*” 除了–include同步的目录外,排除其他目录 rsync://127.0.0.1/site 为你rsync服务端要同步的目录 /work/backup/htdocs_bak/site 为你客户端的目录 rsync同步指定正则文件(含子目录) 前阵子做日志备份,把各个服务器上的日志同步到日志服务器上做备份,刚开始比较暴力,把所有压缩好的*gz文件全部传送到日志备份服务器上。后来,发现这种方式非常不好,一旦备份的目录发生改变,服务器上又会把它所有的*gz文件全部再传一遍,即浪费时间又给服务i/o产生不必要的压力,后来想只同步某天的*gz文件。 需求描述: 有一个类似于这样的目录结构,子目录的个数是不确定的 复制代码 代码如下: [root@IND_ tlbb]# tree . |-- ReadMe.txt | |-- Audit | `-- Money_2013-09-10.tgz |-- Audit_2013-09-10.tgz `-- Install我想同步*.py结尾的东东 同步完成后 复制代码 代码如下: [root@IND_ tlbb]# tree . |-- Audit | `-- Money_2013-09-10.tgz `-- Audit_2013-09-10.tgz方式1:(失败) rsync -auvz –include=”*${YDate}*gz ” ./ 192.168.137.22::tlbb 结果:会把所有的文件都同步过去了,连Install都同步过去了 方式2: rsync -aruvz –include=”*${YDate}*gz” –include=”*/” –exclude=”*” ./* 192.168.137.22::tlbb 结果:能把今天所有的gz文件都正常传过去喽,先允许所有的匹配的gz文件,再允许所有子目录,最后拒绝所有其他的。 看到这里的朋友大家肯定发现了如果文件夹过多,肯定比较累,直接弄个txt文件将需要同步的与不需要同步都分别弄下就更好了,下面的方法在4.10版本中测试正常 1、只同步制定目录 如果当前目录文件夹有aa,bb,cc,dd等很多文件夹,我们只同步aa,bb,cc 先新建一个txt文件,例如 include.txt 复制代码 代码如下: aa bb cc只需要这么写就可以了--files-from="include.txt" 复制代码 代码如下: @echo off rsync -vzrtopg --progress --no-super --files-from="include.txt" --password-file=wtjb51.secrets /cygdrive/g/www/filesjb51net/web/ jb51@ip::filesjb512、不要同步哪些同步 新建一个exclude.txt文件,不同步dd文件夹 复制代码 代码如下: dd--exclude-from=exclude.txt 使用rsync -aP --exclude=upload 只能排除upload文件/目录。 如果要排除多个文件/目录,怎么办? 那只能建一个exclude.list,里面填写要排除的目录(一行一个文件/目录),然后rsync -aP --exclude-from=“exclude.list“ 如:rsync -aP --exclude-from=/root/exclude.list 192.168.113.118::web_bak/www/ /data/server/www/ (从118同步数据到本机) 补充 --exclude=PATTERN exclude files matching PATTERN --exclude-from=FILE read exclude patterns from FILE --include=PATTERN don't exclude files matching PATTERN --include-from=FILE read include patterns from FILE 补充: rsync -vau --files-from="/root/syncto.txt" --exclude-from="/root/excludefile.txt" /data/web/ [email protected]:/data/web/用这种方式就可以了,其中syncto.txt写入要同步的文件,execludefile.txt存不需要同步的文件 您可能感兴趣的文章:linux下使用rsync同步目录rsync备份时自动创建目录的方法rsync 只同步目录结构不同步文件的方法Linux 用cp和rsync同步文件时跳过指定目录的方法使用RSYNC在服务器间镜像或者备份目录和文件Rsync 秒杀一切备份工具,你能手动屏蔽某些目录吗? |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |